home *** CD-ROM | disk | FTP | other *** search
/ BCI NET / BCI NET Dec 94.iso / archives / programming / languages / cleo.lzh / Cleo / examples / horner.cl < prev    next >
Encoding:
Text File  |  1993-01-24  |  1.1 KB  |  46 lines

  1. program Horner;
  2.     { Calcul du polynome de degre n en 1 point x }
  3.     {
  4.         Shema de Horner:
  5.             P(X) = a0.X**n + a1.X**(n-1) + ... + an
  6.  
  7.         calcul:
  8.             P(X) = ( ((a0.X +a1)X + a2)X +a3)X + ... ) X +an
  9.         Or P(X) est le reste de la div euclidienne du poly P(x)
  10.         par (x-X);
  11.             P(x) = (x-X) Q(x) + P(X);
  12.         Soit b0, b1, b2, ..., bn-1 les coefs du poly Q et notons
  13.         bn le reste de P(X) on a la suite:
  14.             b0 = a0
  15.             b1 = b0.X + a1
  16.                 ...
  17.             bi = bi-1.X + ai
  18.                 ...
  19.             bn = bn-1.X + an
  20.     }
  21.  
  22. var
  23.     n, i : integer;
  24.     x   : real;
  25.     a : array[1..30] of real;       { Poly de degre < 30 }
  26.     b : array[1..30] of real;
  27.  
  28. begin
  29.     a[1] := 1;
  30.     a[2] := 3;
  31.     a[3] := 2;
  32.    { Degre du polynome: }
  33.     n := 2;
  34.  
  35.     write('Valeur au point X='); readln(x);
  36.  
  37.     b[1] := a[1];
  38.     i:=2;                       { 2eme coef }
  39.     while  i <=n+1 do           { +1 car le tab commence en 1 }
  40.         begin
  41.             b[i] := b[i-1]*x+a[i];
  42.             i := i+1;
  43.         end;
  44.     writeln('     Valeur du polynome au point ',x,' = ',b[n+1]);
  45.     writeln;
  46. end.